Skip to content

할일 리스트 모달 추가#34

Closed
Jieunsse wants to merge 1 commit into
mainfrom
feature/modal-with-domain
Closed

할일 리스트 모달 추가#34
Jieunsse wants to merge 1 commit into
mainfrom
feature/modal-with-domain

Conversation

@Jieunsse

@Jieunsse Jieunsse commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 할일 리스트 생성용 모달 추가

Issue

이슈번호 #33

Scope

  • 특이사항 없습니다.

@Jieunsse Jieunsse added this to the 컴포넌트 milestone Feb 6, 2026
@Jieunsse Jieunsse self-assigned this Feb 6, 2026
@Jieunsse Jieunsse added this to workers Feb 6, 2026
@Jieunsse Jieunsse added the 기능추가 기능개발 및 추가할 때 사용해주세요. label Feb 6, 2026
@github-project-automation github-project-automation Bot moved this to 개발 대기중 in workers Feb 6, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @Jieunsse, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 사용자가 할 일 목록을 생성할 수 있는 새로운 기능을 도입합니다. 이를 위해 전용 모달 컴포넌트와 그에 따른 스타일링이 추가되었으며, 기존 모달 컴포넌트의 유연성을 높이기 위해 타입 정의가 업데이트되었습니다. 전반적으로 사용자 경험을 개선하고 새로운 기능 추가를 위한 기반을 마련합니다.

Highlights

  • 새로운 할 일 목록 생성 모달 추가: 사용자가 새로운 할 일 목록을 생성할 수 있는 AddTodoList 모달 컴포넌트가 추가되었습니다.
  • 모달 스타일링: 새로운 AddTodoList 모달을 위한 전용 CSS 모듈 (AddTodoList.module.css)이 추가되어 반응형 디자인과 일관된 UI를 제공합니다.
  • 모달 컴포넌트 타입 확장: 기존 Modal 컴포넌트의 BaseModalProps 인터페이스에 contentClassName 속성이 추가되어 모달 콘텐츠 영역에 사용자 정의 스타일을 적용할 수 있도록 유연성이 향상되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • src/components/Modal/domain/AddTodoList.module.css
    • 할 일 목록 생성 모달을 위한 새로운 CSS 스타일이 추가되었습니다. 여기에는 컨테이너, 헤더, 제목, 폼, 입력 필드, 푸터, 버튼 및 닫기 버튼에 대한 스타일 정의가 포함됩니다.
    • 모바일 환경을 위한 반응형 스타일이 @media 쿼리를 통해 적용되었습니다.
  • src/components/Modal/domain/AddTodoList.tsx
    • 할 일 목록 생성 모달을 위한 새로운 React 컴포넌트가 추가되었습니다.
    • 모달은 Modal 컴포넌트를 사용하여 렌더링되며, 제목, 입력 필드, 생성 버튼 및 닫기 버튼을 포함합니다.
    • 폼 제출(handleSubmit) 시 onCreate 콜백 함수를 호출하도록 구현되었습니다.
  • src/components/Modal/types/types.ts
    • BaseModalProps 인터페이스에 contentClassName?: string; 속성이 추가되어 모달의 콘텐츠 영역에 사용자 정의 CSS 클래스를 적용할 수 있게 되었습니다.
Activity
  • 아직 사람의 활동은 없습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 할 일 리스트 생성을 위한 모달을 추가합니다. 전반적으로 잘 작성되었지만, 몇 가지 중요한 수정이 필요합니다. AddTodoList 컴포넌트가 현재 입력된 할 일의 이름을 상태로 관리하거나 onCreate 콜백으로 전달하지 않아, 핵심 기능이 동작하지 않는 문제가 있습니다. 이를 수정하기 위한 제안을 포함했습니다. 또한, CSS 파일에서 font 속성을 축약하여 가독성과 유지보수성을 높일 수 있는 부분을 발견하여 제안했습니다. Modal 컴포넌트와 관련된 contentClassName prop이 실제로는 적용되지 않는 문제도 있으니 확인이 필요합니다.

Comment on lines +12 to +52
export interface AddTodoListProps {
isOpen: boolean;
onClose: () => void;
onCreate: () => void;
}

export default function AddTodoList({ isOpen, onClose, onCreate }: AddTodoListProps) {
const handleSubmit = (e: FormEvent<HTMLFormElement>) => {
e.preventDefault();
onCreate();
};

return (
<Modal
isOpen={isOpen}
onClose={onClose}
ariaLabelledby={TITLE_ID}
contentClassName={styles.modalContent}
>
<article className={styles.container}>
<header className={styles.header}>
<h2 id={TITLE_ID} className={styles.title}>
할 일 목록
</h2>
<button type="button" className={styles.closeButton} aria-label="close" onClick={onClose}>
<Image src={xMarkBig} alt="" width={24} height={24} />
</button>
</header>

<form className={styles.form} onSubmit={handleSubmit}>
<Input className={styles.input} placeholder="할 일을 입력하세요" />
<footer className={styles.footer}>
<button type="submit" className={styles.button}>
만들기
</button>
</footer>
</form>
</article>
</Modal>
);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

현재 AddTodoList 컴포넌트는 할 일 목록의 이름을 생성 콜백으로 전달하지 않아 기능적으로 동작하지 않습니다. 또한, contentClassName prop이 Modal 컴포넌트에서 처리되지 않아 의도한 스타일이 적용되지 않을 수 있습니다.

다음과 같이 수정하여 문제를 해결할 수 있습니다.

  1. 입력 값 전달: handleSubmit 함수에서 폼 데이터를 읽어 onCreate 콜백으로 전달합니다. 이를 위해 Inputname 속성을 추가하고 onCreate prop의 타입 시그니처를 (name: string) => void로 변경합니다.
  2. contentClassName 적용: Modal 컴포넌트가 contentClassName을 받아서 내부 컨테이너에 적용하도록 수정해야 합니다. (이 변경은 Modal.tsx 파일에 적용되어야 합니다.)

아래는 AddTodoList.tsx에 대한 전체 수정 제안입니다.

export interface AddTodoListProps {
  isOpen: boolean;
  onClose: () => void;
  onCreate: (name: string) => void;
}

export default function AddTodoList({ isOpen, onClose, onCreate }: AddTodoListProps) {
  const handleSubmit = (e: FormEvent<HTMLFormElement>) => {
    e.preventDefault();
    const formData = new FormData(e.currentTarget);
    const name = formData.get('name') as string;

    if (!name?.trim()) {
      return; // 또는 에러 메시지를 표시할 수 있습니다.
    }

    onCreate(name.trim());
  };

  return (
    <Modal
      isOpen={isOpen}
      onClose={onClose}
      ariaLabelledby={TITLE_ID}
      contentClassName={styles.modalContent}
    >
      <article className={styles.container}>
        <header className={styles.header}>
          <h2 id={TITLE_ID} className={styles.title}>
            할 일 목록
          </h2>
          <button type="button" className={styles.closeButton} aria-label="close" onClick={onClose}>
            <Image src={xMarkBig} alt="" width={24} height={24} />
          </button>
        </header>

        <form className={styles.form} onSubmit={handleSubmit}>
          <Input name="name" className={styles.input} placeholder="할 일을 입력하세요" />
          <footer className={styles.footer}>
            <button type="submit" className={styles.button}>
              만들기
            </button>
          </footer>
        </form>
      </article>
    </Modal>
  );
}

Comment on lines +27 to +31
font-family: Pretendard;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 19px;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

여러 font 관련 속성들(font-family, font-size, font-style, font-weight, line-height)을 font shorthand 속성을 사용하여 한 줄로 줄일 수 있습니다. 이렇게 하면 코드가 더 간결해집니다.

이러한 변경은 이 파일의 .input.input::placeholder (53-57행) 및 .button (79-83행) 선택자에도 유사하게 적용하여 코드 중복을 줄이고 가독성을 높일 수 있습니다.

Suggested change
font-family: Pretendard;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 19px;
font: 500 16px/19px Pretendard;

@Jieunsse Jieunsse changed the title feat: 할일 리스트 모달 추가 할일 리스트 모달 추가 Feb 6, 2026
@Jieunsse Jieunsse closed this Feb 7, 2026
@github-project-automation github-project-automation Bot moved this from 개발 대기중 to 개발 완료 in workers Feb 7, 2026
@Jieunsse Jieunsse deleted the feature/modal-with-domain branch February 20, 2026 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능추가 기능개발 및 추가할 때 사용해주세요.

Projects

Status: 개발 완료

Development

Successfully merging this pull request may close these issues.

1 participant